#ifndef UNIT_CREATE_H
#define UNIT_CREATE_H

#include "GameCommand.h"
#include <string>

struct Unit_Create : public GameCommand
{
	static string command;
	char type[32];
	unsigned x;
	unsigned y;
	
	Unit_Create() : GameCommand() { }
	Unit_Create(char Type[], unsigned X, unsigned Y);
	
	virtual ~Unit_Create() {}
	
	virtual void onExecute();
	virtual string toString();
	virtual SerializedGameCommand serialize() const;
	
	static Unit_Create* interpret(const SerializedGameCommand&);
	static Unit_Create* interpret(const char* line);
	
private:
	/*	If you get a link error regarding a command's copy constructor, it's because it's defined privately. We force
		passing by reference for efficiency.
	*/
	Unit_Create(const Unit_Create&);
	Unit_Create& operator=(const Unit_Create&);
};

#endif
